module.exports = app => {
  const { STRING,  } = app.Sequelize;

  const User = app.model.define('user', {
    provider: { type: STRING },
    uid: { type: STRING },
    //todo 索引的一般写法  注意不是 unique: true  这不是索引 是指唯一性
    username: { type: STRING, unique: 'username'},
    password: { type: STRING },

  },
  //    todo indexes 添加unique索引
  // {
  //   indexes: [{ unique: true, fields: ['username'] }]
  // }
  );

  //todo User.associate  .belongsTo  UserInfo一对一的关系
  // 保存的时候 newUser.setUserInfo(userInfo);
  User.associate = function() {
    // One-To-One associations
    app.model.User.hasOne(app.model.UserInfo);

    //todo app.model.User.belongsToMany 用户表和分组表多对多关系
    // Many-To-Many associations through中间表是user_group
    app.model.User.belongsToMany(app.model.Group, {through: 'user_group'});
    //todo  用户表和角色表 多对多关系  through中间表是 user_role
    app.model.User.belongsToMany(app.model.Role, { through: 'user_role' });

  }
  return User;

};
